#pragma once

// Base header for calculating geometry object's area

#include <utils/Concepts.h>
#include <utils/config.h>
#include <algorithm/shared/utils/Vec3.h>


#include <memory>

namespace solar
{
    template <typename T> auto center(T* /*unused*/, bool lazy = true) -> Vec3
    {
        static_assert(false, "Don't use this generic **unimplemented** version, include the "
                             "corresponding header for detailed implementation");
    }

    template <ClassWithCenter T> auto center(T* ptr, bool lazy = true) -> Vec3
    {
        return ptr->center();
    }
} // namespace solar
